package org.sky.configbean;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import com.netflix.loadbalancer.WeightedResponseTimeRule;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class ConfigBean {
    /**
    @Bean
    @LoadBalanced// Spring Cloud Ribbon 是基于Netflix Ribbon 实现的一套客户端 负载均衡的工具
    public RestTemplate initRestTemplate(){
        return new RestTemplate();
    }
     **/
    /**
     * Ribbon负载均衡策略
     * Feign集成了Ribbon技术，所以也支持负载均衡（默认轮询，如需要替换可以在将自己需要的规则添加到容器中，如上一节Ribbon的方式）
     * @return
     */
    public IRule initRibbonRule(){
        return new RandomRule();
        //return new WeightedResponseTimeRule();
    }
}
